//渲染用户组织树
var zTreeObj = null; 
var treenode = null;
var mIndex = null;
var ID = null;
var sel = '';
var id,e,node;
var setting = {
    view: {
        dblClickExpand: false,//双击节点时，是否自动展开父节点的标识
        showLine: true,//是否显示节点之间的连线
        fontCss:{'color':'black','font-weight':'bold'},//字体样式函数
        // selectedMulti: true //设置是否允许同时选中多个节点
    },
    async: {
        enable: false,
    },
    edit: {
        enable: true,
        showRemoveBtn: false,
        showRenameBtn: false
    },
    data: {
        keep:{
            parent: true
        },
        simpleData: {//简单数据模式
            enable:false,
        },
    },
    callback: {
        // beforeExpand:zTreeBeforeExpand, // 用于捕获父节点展开之前的事件回调函数，并且根据返回值确定是否允许展开操作
        onClick: zTreeOnClick,
        // 点击+号触发事件
        onExpand:zTreeOnExpand,
        beforeExpand: zTreeBeforeExpand,
        // 双击事件
        // onDblClick: zTreeOnDblClick,
        // 右键事件
        onRightClick: zTreeOnRightClick,
        // 删除事件
        // onRemove:remove,
    }
};
var zTreeNodes = null;
$(document).ready(function () {
    parent.ajaxGet(parent.defaultUrl+'/ginfo',{groudid:0},function(resp){
        for(var i=0;i<resp.data.group.length;i++){
            for(var key in resp.data.group[i]){
                resp.data.group[i].isParent = true
                resp.data.group[i].name = resp.data.group[i].groupname;
            }
        }
        zTreeNodes = eval(resp.data.group)
        zTreeObj = $.fn.zTree.init($("#UserTree"), setting, zTreeNodes);
    })  
})
// 展开分组(左键单击事件)
function zTreeOnClick(event, treeId, treeNode){
    zTreeObj.removeChildNodes(treeNode);
        if(treeNode.isParent == true){
            if(treeNode.open == false){
                nextLevel(event, treeId, treeNode)
                zTreeObj.expandNode(treeNode,true); 
            }else{
                zTreeObj.expandNode(treeNode,false);
            } 
        }    
}
function zTreeBeforeExpand(treeId, treeNode) { 
    zTreeObj.removeChildNodes(treeNode);
    treeNode.isParent = true
    return true
}
// 点击左侧小加号事件
function zTreeOnExpand(event, treeId, treeNode) { 
    nextLevel(event, treeId, treeNode)
} 
// 展开下级目录或者人员
function nextLevel(e,id,node){
            parent.ajaxGet(parent.defaultUrl+'/ginfo',{groudid:node.id},function(res){
                // console.log(res)
                if(res.data.user.length != 0){
                    var user = res.data.user.filter(function (el) {
                        return el != null;
                    });
                }
                // 增加用户节点
                zTreeObj.addNodes(node, user);
                // 增加用户分组
                if(res.data.group != ''){
                    for(var i=0;i<res.data.group.length;i++){
                        for(var key in res.data.group[i]){
                            res.data.group[i].isParent = true
                            res.data.group[i].name = res.data.group[i].groupname;
                        }
                    }
                    zTreeObj.addNodes(node, res.data.group);
                }        
            }) 
}
 //右键事件调用的函数
 function zTreeOnRightClick(event, treeId, treeNode) {
    event.cancelBubble = true;
    id = treeId;
    e= event;
    node = treeNode;
    treenode = treeNode;
    // name = treenode.name;
    event = event || window.event;
    var posobj = getMousePos();
    if(treenode && treenode.level == 0){
        if(treenode && treenode.isParent == true){
            $('.operate').css({
                "top": posobj.y,
                "left": posobj.x,
                "display": 'block',
            });
            $('.operate').css('display','block')
            $('#delgroup').css('display','block')
            $('#addUser').css('display','block')
        }else{
            $('.operate').css('display','none') 
        }
    }else if(treenode && treenode.level > 0){
        if(treenode && treenode.isParent == true){
            $('.operate').css({
                "top": posobj.y,
                "left": posobj.x,
                "display": 'block',
            });
            $('.operate').css('display','block') 
            $('#delgroup').css('display','block')
            $('#addUser').css('display','block')
        }else{
            $('.operate').css('display','none')  
        }
    }
};
// 鼠标右键事件
$("#UserTree").bind("contextmenu", function () {
    event.stopPropagation();    //  阻止事件冒泡
    var posobj = getMousePos();
    $('.operate').css({
        "top": posobj.y,
        "left": posobj.x,
        "display": 'block',
    });
    $('#delgroup').css('display','none')
    $('#addUser').css('display','none')
    return false;
});
//获取鼠标当前位置的函数
function getMousePos(event) {
    var e = event || window.event;
    var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
    var scrollY = document.documentElement.scrollTop || document.body.scrollTop;
    var x = e.pageX || e.clientX + scrollX;
    var y = e.pageY || e.clientY + scrollY;
    return {
        'x': x,
        'y': y
    };
}
//左键取消menu显示
document.addEventListener("click", function () {
    $('.operate').css("display", 'none');
});
//渲染用户信息表格
var table,form;
layui.use(['table','form'], function () {
    table = layui.table;
    form = layui.form;
    table.render({
        elem: '#UserTab'
        // , url: '../../JSON/UserInfo.json'
        ,url: parent.defaultUrl+'/user_list'
        ,method:'post'
        ,contentType:'application/json'
        ,page: { //支持传入 laypage 组件的所有参数（某些参数除外，如：jump/elem） - 详见文档
            layout: [ 'prev', 'page', 'next', 'skip','limit', 'count',] //自定义分页布局
            //,curr: 5 //设定初始在第 5 页
            ,limit:5 //一页显示多少条
            ,limits:[5,10,15]//每页条数的选择项
            // ,groups: 2 //只显示 2 个连续页码
            ,first: "首页" //不显示首页
            ,last: "尾页" //不显示尾页
    }
        ,where:{
            ispage: true,
        }
        ,parseData: function(res){
            // console.log(res)
            return {
                'code': 0, //解析接口状态
                'msg': '', //解析提示文本
                'count': res.totle, //解析数据长度
                'data': res.data //解析数据列表
            };
            
        }
        // , cellMinWidth: 80 //全局定义常规单元格的最小宽度，layui 2.2.1 新增
        , cols: [[
            {field: 'ID', title: 'ID', sort: true,align: 'center'}
            , {field: 'USER_ACCOUNT', title: '用户名',align: 'center'} //width 支持：数字、百分比和不填写。你还可以通过 minWidth 参数局部定义当前单元格的最小宽度，layui 2.2.1 新增
            , {field: 'USER_NAME', title: '昵称',align: 'center'}
            , {field: 'USER_SEX', title: '性别', sort: true,align: 'center'}
            , {field: 'USER_PHONE', title: '手机号',align: 'center'}
            , {field: 'GROUPNAME', title: '部门',align: 'center'}
            // , {field: 'USER_INSPECT', title: '权限', align: 'center'} //单元格内容水平居中
            , {field: 'USER_MAIL', title: '邮箱', align: 'center'} //单元格内容水平居中
            , {field: 'USER_STATUS', title: '状态', sort: true, align: 'center'}
            ,{field:'operate', title:'操作', align: 'center',toolbar:"#operate", width:140,}
        ]]
    });
    // 表格的修改删除
    //监听行工具事件
    table.on('tool(useruv)', function(obj){
        var data = obj.data;
        ID = obj.data.ID;
        if(obj.event === 'del'){
            layer.confirm('确认删除？',{ skin : "layerCls"}, function(index){
                parent.ajaxPost(parent.defaultUrl +'/deleteUserById',  obj.data.ID , function (data) { 
                    parent.layer.msg('删除成功')
                 })
                obj.del();
                // 删除之后需要刷新树
                zTreeObj = $.fn.zTree.init($("#UserTree"), setting, zTreeNodes);
                layer.close(index);
            });
        } else if(obj.event === 'edit'){  
            mIndex = layer.open({
                type:1,
                skin: 'layerCls',
                title: ['用户信息修改', 'font-size:18px;color:#fff;'],
                content:$("#correctpupop"),
                area: ['480px', '520px'],
            })
             // 获取部门的下拉选择
            $.ajax({
                type: "get",
                url: parent.defaultUrl + "/depatmant_list",
                success:function(res){
                    var msg = res.data;
                    $("#dept").empty();
                    var t='';
                    if(msg && msg !=''){
                    for(var i=0;i<msg.length;i++){
                        t+='<option value="'+msg[i].id+'" >'+msg[i].groupname+'</option>'
                        if(msg[i].groupname == data.GROUPNAME){
                           sel =  msg[i].id 
                        }
                    }
                    $("#dept").append(t)
                    $('#dept').val(sel)
                    form.render('select');
                }
                },
                error:function (err) {
                    console.log(err)
                }
            })              
            $('#hideId').val(data.ID);
            $('#correctname').val(data.USER_NAME)
            $('#correctnick').val(data.USER_ACCOUNT)
            $('#phoneM').val(data.USER_PHONE)
            $('#emailM').val(data.USER_MAIL) 
            $('#correctpupop').find("input:radio[value='"+ data.USER_SEX +"']").prop('checked','checked')
            // $("input[name=sexy][value='男']").attr("checked", data.USER_SEX == "男" ? true : false);
            // $("input[name=sexy][value='女']").attr("checked", data.USER_SEX == "女" ? true : false);
            form.render(); 
        }
    });
});
// 表格重载
function reload(){
    table.reload('UserTab', {
        url: parent.defaultUrl+'/user_list'
        ,page: { //支持传入 laypage 组件的所有参数（某些参数除外，如：jump/elem） - 详见文档
            layout: [ 'prev', 'page', 'next', 'skip','limit', 'count',] //自定义分页布局
            //,curr: 5 //设定初始在第 5 页
            ,limit:5 //一页显示多少条
            ,limits:[5,10,15]//每页条数的选择项
            // ,groups: 2 //只显示 2 个连续页码
            ,first: "首页" //不显示首页
            ,last: "尾页" //不显示尾页
        }
      });
}